Embodiments of the inventive concept relate generally to semiconductor memory technologies, and more particularly, to memory systems and methods that select a write mode of a data block according to a write pattern of a log block.
Semiconductor memory devices can be roughly divided into two categories according to whether they retain stored data when disconnected from power. These categories include volatile memory devices, which lose stored data when disconnected from power, and nonvolatile memory devices, which retain stored data when disconnected from power.
Volatile memory devices tend to have higher read and write speeds compared with nonvolatile memory devices. However, because they lose stored data when disconnected from power, they are not generally used to provide long-term data storage.
Flash memory is an increasingly popular form of nonvolatile memory due to various attractive features such as relatively high integration density, low power consumption, and the ability to withstand physical shock. However, the continuing demand for flash memory puts pressure on researchers to improve its performance and storage capacity. One technique that has been adopted for increasing the storage capacity of flash memory is increasing the number of bits stored in each memory cell. A memory cell that stores multiple bits of data is called a multi-level cell (MLC) and a memory cell that stores only one bit of data is called a single-level cell (SLC).
Flash memories are generally programmed in units of pages or words, and erased in units of blocks. Because the units of program and erase operations differ, a page of data may be moved to a new physical location to allow an entire block to be erased. Accordingly, to preserve the logical addressing of the moved page, a flash memory can incorporate a flash translation layer (FTL) that maps between a logical address (LA) used by a host system to address data, and a physical address (PA) where the data is actually stored.
Some flash memories use a hybrid mapping (or log mapping) method in which page data to be stored in a data block is first updated to a log block during a write operation. Once all pages of a log block are used or there is no usable log block, data stored in a log block and additional data stored in a data block are copied to a new data block through a merge operation. In general, the write performance of a memory system is limited by the speed at which data can be buffered into a log block, and the speed at which the buffered data can be merged into a new data block. Consequently, efficient merge operations can significantly improve the performance of a memory system.